home *** CD-ROM | disk | FTP | other *** search
/ Cream of the Crop 1 / Cream of the Crop 1.iso / PROGRAM / ULARN.ARJ / ULARN.TAR / ularn / savelev.c < prev    next >
C/C++ Source or Header  |  1989-10-25  |  1KB  |  63 lines

  1. /* savelev.c    */
  2. #include "header.h"
  3.  
  4. extern struct cel *cell;
  5.  
  6. /*
  7.  *    routine to save the present level into storage
  8.  */
  9. savelevel()
  10. {
  11.     struct cel *pcel;
  12.     char *pitem,*pknow,*pmitem;
  13.     short *phitp,*piarg;
  14.     struct cel *pecel;
  15.  
  16.     pcel = &cell[level*MAXX*MAXY];    /* pointer to this level's cells */
  17.  
  18.     /* pointer to past end of this level's cells */
  19.     pecel = pcel + MAXX*MAXY;    
  20.  
  21.     pitem=item[0]; 
  22.     piarg=iarg[0]; 
  23.     pknow=know[0]; 
  24.     pmitem=mitem[0]; 
  25.     phitp=hitp[0];
  26.     while (pcel < pecel) {
  27.         pcel->mitem  = *pmitem++;
  28.         pcel->hitp   = *phitp++;
  29.         pcel->item   = *pitem++;
  30.         pcel->know   = *pknow++;
  31.         pcel++->iarg = *piarg++;
  32.     }
  33. }
  34.  
  35. /*
  36.  *    routine to restore a level from storage
  37.  */
  38. getlevel()
  39. {
  40.     struct cel *pcel;
  41.     char *pitem,*pknow,*pmitem;
  42.     short *phitp,*piarg;
  43.     struct cel *pecel;
  44.  
  45.     pcel = &cell[level*MAXX*MAXY];    /* pointer to this level's cells */
  46.  
  47.     /* pointer to past end of this level's cells */
  48.     pecel = pcel + MAXX*MAXY;    
  49.  
  50.     pitem=item[0]; 
  51.     piarg=iarg[0]; 
  52.     pknow=know[0]; 
  53.     pmitem=mitem[0]; 
  54.     phitp=hitp[0];
  55.     while (pcel < pecel) {
  56.         *pmitem++ = pcel->mitem;
  57.         *phitp++ = pcel->hitp;
  58.         *pitem++ = pcel->item;
  59.         *pknow++ = pcel->know;
  60.         *piarg++ = pcel++->iarg;
  61.     }
  62. }
  63.